package com.dc.designPattern._4_builder.extend.old;

import com.google.common.collect.Lists;

import java.util.List;

/**
 * Description: 客户端
 *
 *  在原模版方法模式的基础上，产生了新的需求，需要从外部，动态的修改业务的执行顺序
 *  执行业务逻辑如下：
 *
 * @author: gdc
 * @date: 2021/6/21
 * @version 1.0
 */
public class Client {

    public static void main(String[] args){
        BenzModel benz = new BenzModel();

        // 设置执行顺序
        // 此处存在的问题，每产生一个新的业务执行顺序，都需要在客户端去实现对应的逻辑，导致调用过程的复杂性提升
        List<String> sequence = Lists.newArrayList();
        sequence.add("engineBoom");
        sequence.add("start");
        sequence.add("stop");

        benz.setSequence(sequence);

        benz.run();
    }
}
